import request from '../utils/Request.js';

/**
 * 数据分析API模块
 * @description 提供取样分析、对比分析、趋势分析三大功能的API接口
 * @author group2
 * @date 2025/11/03
 */
const dataAnalysisApi = {
  /**
   * 取样分析
   * @description 查询指定调查期的企业地区分布情况
   * 
   * @param {Object} params - 查询参数
   * @param {Array<number>} params.periodIds - 调查期ID列表（单个）
   * @param {Array<number>} [params.regions] - 地区筛选（可选）
   * @param {Array<number>} [params.statuses] - 状态筛选（默认[3,4]）
   * 
   * @returns {Promise} 返回取样分析结果
   * @example
   * getSamplingAnalysis({
   *   periodIds: [1],
   *   regions: [530100],  // 可选：只看昆明市
   *   statuses: [2, 3, 4]
   * })
   */
  getSamplingAnalysis: (params) => {
    return request.post({
      url: '/dataAnalysis/sampling',
      params: params,
    });
  },

  /**
   * 对比分析
   * @description 对比两个调查期的数据变化
   * 
   * @param {Object} params - 查询参数
   * @param {Array<number>} params.periodIds - 调查期ID列表（必须2个）
   * @param {string} params.groupBy - 分组维度：'region'|'nature'|'industry'
   * @param {Array<number>} [params.regions] - 地区筛选（可选）
   * @param {Array<number>} [params.natures] - 性质筛选（可选）
   * @param {Array<number>} [params.industries] - 行业筛选（可选）
   * 
   * @returns {Promise} 返回对比分析结果
   * @example
   * getComparisonAnalysis({
   *   periodIds: [1, 2],
   *   groupBy: 'region',
   *   regions: [530100, 530300]
   * })
   */
  getComparisonAnalysis: (params) => {
    return request.post({
      url: '/dataAnalysis/comparison',
      params: params,
    });
  },

  /**
   * 趋势分析
   * @description 查看多个调查期的数据趋势
   * 
   * @param {Object} params - 查询参数
   * @param {Array<number>} params.periodIds - 调查期ID列表（多个）
   * @param {string} [params.groupBy] - 分组维度：'region'|'nature'|'industry'（可选）
   * @param {Array<number>} [params.regions] - 地区筛选（可选）
   * @param {Array<number>} [params.natures] - 性质筛选（可选）
   * @param {Array<number>} [params.industries] - 行业筛选（可选）
   * 
   * @returns {Promise} 返回趋势分析结果
   * @example
   * getTrendAnalysis({
   *   periodIds: [1, 2, 3, 4],
   *   groupBy: null,  // 全省汇总
   *   regions: []
   * })
   */
  getTrendAnalysis: (params) => {
    return request.post({
      url: '/dataAnalysis/trend',
      params: params,
    });
  },

  /**
   * 多维分析（Phase 5 新增）
   * @description 3D 多维数据可视化，同时查看地区、行业、性质三个维度
   * 
   * @param {Object} params - 查询参数（所有参数都是可选的）
   * @param {Array<number>} [params.periodIds] - 调查期ID列表（可选）
   * @param {Array<number>} [params.regions] - 地区代码列表（一级分类）
   * @param {Array<number>} [params.industries] - 行业代码列表（一级分类）
   * @param {Array<number>} [params.natures] - 性质代码列表（一级分类）
   * 
   * @returns {Promise} 返回多维数据点数组
   * @example
   * getMultiDimensionalAnalysis({
   *   periodIds: [1],
   *   regions: [1, 2, 3],      // 临沧市、丽江市、保山市
   *   industries: [1, 3, 5],   // 农林牧渔、制造业、建筑业
   *   natures: [1, 2]          // 国有企业、集体企业
   * })
   * 
   * 返回数据格式：
   * {
   *   status: "success",
   *   data: [
   *     {
   *       regionCode: 1,
   *       regionName: "临沧市",
   *       industryCode: 3,
   *       industryName: "制造业",
   *       natureCode: 1,
   *       natureName: "国有企业",
   *       enterpriseCount: 150,
   *       unemploymentRate: 3.2
   *     },
   *     ...
   *   ]
   * }
   */
  getMultiDimensionalAnalysis: (params) => {
    return request.post({
      url: '/dataAnalysis/multiDimensional',
      params: params,
    });
  },
};

export default dataAnalysisApi;

// 导出单个函数（方便组件中按需引入）
export const { 
  getSamplingAnalysis, 
  getComparisonAnalysis, 
  getTrendAnalysis,
  getMultiDimensionalAnalysis 
} = dataAnalysisApi;

